package co.com.travelsoft.ati.utils;

import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.AnnotationConfiguration;

public class FabricaSesionesUtil {

	private static org.hibernate.SessionFactory fabricaSesiones;

	private FabricaSesionesUtil() {
	}

	static{
		fabricaSesiones =  new AnnotationConfiguration().configure().buildSessionFactory();
    }

	public static SessionFactory getInstancia() {
		return fabricaSesiones;
	}

  /**
   * Permite abrir una sesion 
   * @return the session
   */
	public Session abrirSesion() {
		return fabricaSesiones.openSession();
	}

	/**
	 * Devuelve una sesion del contexto actual. Si no hay una sesion en el contexto abre una.
	 * 
	 * @return the session
	 */
	public Session getSesionActual() {
		return fabricaSesiones.getCurrentSession();
	}

  /**
   * Permite cerrar la fabrica de sesiones
   */
	public static void cerrar(){
		if (fabricaSesiones != null)
			fabricaSesiones.close();
		fabricaSesiones = null;
	
	}
}
